package club.service;

import club.pojo.AdoptAnimal;
import com.github.pagehelper.PageInfo;

public interface AdoptAnimalService {

    /**
     * 创建领养动物记录
     *
     * @param adoptAnimal 待创建的领养动物对象
     * @return 插入操作影响的行数，通常为1
     */
    Integer create(AdoptAnimal adoptAnimal);

    /**
     * 查询所有领养动物记录（分页），可根据领养时间模糊查询
     *
     * @param adoptTime 领养时间，用于模糊查询
     * @param pageNum   当前页码
     * @param pageSize  每页显示条数
     * @return 分页后的领养动物记录列表
     */
    PageInfo<AdoptAnimal> all(String adoptTime, Integer pageNum, Integer pageSize);

    /**
     * 更新领养动物记录的状态
     *
     * @param id    领养动物记录的ID
     * @param state 新的状态值
     * @return 更新操作影响的行数，通常为1
     */
    int update(Integer id, Integer state);

    /**
     * 查询用户的所有领养动物记录（分页），可根据用户名和状态查询
     *
     * @param userName 用户名，用于精确查询
     * @param pageNum  当前页码
     * @param pageSize 每页显示条数
     * @param state    状态，可选，用于精确查询
     * @return 分页后的领养动物记录列表
     */
    PageInfo<AdoptAnimal> allAdoptAnimal(String userName, Integer pageNum, Integer pageSize, Integer state);
}